Timm Bäder [Thu, 18 Jan 2018 13:42:39 +0000 (14:42 +0100)]
widget: Initialize a local variable
We will later pass this variable on to some other functions, so be safe
against them using the value.
Timm Bäder [Thu, 18 Jan 2018 13:38:27 +0000 (14:38 +0100)]
aboutdialog: Only close on delete events
Clicking on the Credits button should not close the dialog.
Timm Bäder [Thu, 18 Jan 2018 08:40:19 +0000 (09:40 +0100)]
fontchooswerwidget: Center spinbutton next to scales vertically
Timm Bäder [Thu, 18 Jan 2018 07:21:11 +0000 (08:21 +0100)]
gl renderer: Render GL textures upside down
These come from an FBO so we need to flip the texture coords on the y
axis, just like we do everywhere else.
Matthias Clasen [Thu, 18 Jan 2018 04:49:17 +0000 (23:49 -0500)]
Revert "inspector: Stop adding event controllers to the object tree"
This reverts commit
8f3cb2658a79d20912b6f2ec96bc7e6bbdaeb067.
This didn't quite work out, since being in the object tree is
a prerequisite for showing up in the property editor.
Matthias Clasen [Thu, 18 Jan 2018 02:45:08 +0000 (21:45 -0500)]
Document new texture api
Matthias Clasen [Thu, 18 Jan 2018 01:19:19 +0000 (20:19 -0500)]
Use the new api to release resources
When we unrealize a GL area with outstanding textures,
call gdk_texture_release_gl on them to avoid later crashes.
Matthias Clasen [Thu, 18 Jan 2018 01:15:45 +0000 (20:15 -0500)]
Add a way to release GL resources
The inspector may hold on to render nodes and textures
beyond the lifetime of the widget (and thus the GL
resources). To handle this situation, allow the widget
to explicitly release the GL resources, and make
the texture available on the clent-side as a cairo
surface. This lets the recorder still show the content
after the widget is gone.
Matthias Clasen [Thu, 18 Jan 2018 00:49:52 +0000 (19:49 -0500)]
glarea: Drop the dispose vfunc
This was causing us to leak, in the following scenario:
1) gtk_widget_destroy is called on a GL area
2) dispose is run and clears the context
3) the GL area is unrealized, but the context is already cleared,
so we leak all the GL buffers
Matthias Clasen [Thu, 18 Jan 2018 00:49:05 +0000 (19:49 -0500)]
glarea: Always delete textures on unrealize
We need to make the context current for deleting
textures as well, so just do it unconditionally.
Matthias Clasen [Thu, 18 Jan 2018 00:48:33 +0000 (19:48 -0500)]
glarea: Avoid a crash
We must only delete the texture if it is not NULL.
Matthias Clasen [Thu, 18 Jan 2018 00:47:45 +0000 (19:47 -0500)]
gdkgears: add a way to remove gears
This is needed to test the GL resource cleanup
code paths.
Matthias Clasen [Thu, 18 Jan 2018 00:15:14 +0000 (19:15 -0500)]
glarea: Add a pool for GL textures
Handle the situation that a GL texture might remain
in use (e.g. by a slow frame, or by the recorder)
In that case, we can't modify it but must use a
new one. Keep a pool of GL textures for this eventuality.
Matthias Clasen [Thu, 18 Jan 2018 00:12:27 +0000 (19:12 -0500)]
inspector: Don't leak recordings
g_list_model_get_item is transfer full, so we need
to drop the references we get from it. This was showing
up while testing the GL texture cache in GtkGLArea.
Timm Bäder [Wed, 17 Jan 2018 20:47:05 +0000 (21:47 +0100)]
rendernodeimpl: Fix a crash
We may get a NULL renderer here.
Timm Bäder [Wed, 17 Jan 2018 15:02:28 +0000 (16:02 +0100)]
applicationwindow: Fix measure implementation
Really calculate the menubar height, not the width.
Timm Bäder [Wed, 17 Jan 2018 14:42:01 +0000 (15:42 +0100)]
sizerequest: Fix for_size adjustment
We need to pull the proper size from the size request cache and adjust
it accordingly.
Timm Bäder [Wed, 17 Jan 2018 12:11:32 +0000 (13:11 +0100)]
box: Simplify some code
All out varibles in measure implementations must be non-null and -1 is
the default value for the baseline parameters.
Timm Bäder [Wed, 17 Jan 2018 12:02:58 +0000 (13:02 +0100)]
box: Remove self assignment
Timm Bäder [Wed, 17 Jan 2018 11:54:42 +0000 (12:54 +0100)]
box: Remove useless if statement
We already check right before this one whether child->pack != packing
and if so, we continue to the next iteration. So, no need to check again
whether the inverted condition child->pack == packing is true, because
it is.
Timm Bäder [Wed, 17 Jan 2018 11:36:37 +0000 (12:36 +0100)]
label: Update layout width directly form allocation
For the one update_layout_width call in size_allocate, we can just use
the passed-in allocation width instead of a separate (relatively slow)
gtk_widget_get_width call.
Timm Bäder [Tue, 16 Jan 2018 19:25:02 +0000 (20:25 +0100)]
widget: Clip redrawn area to widget clip
The clip can already be modified in size_allocate, so we never want a
widget to invalidate more than its actual clip region.
Timm Bäder [Tue, 16 Jan 2018 17:47:52 +0000 (18:47 +0100)]
box: Remove some unneeded checks
We only call this function from the measure implementation and we should
never get NULL pointers there.
Timm Bäder [Tue, 16 Jan 2018 16:50:11 +0000 (17:50 +0100)]
box: Remove an unnecessary local variable
Timm Bäder [Tue, 16 Jan 2018 16:44:46 +0000 (17:44 +0100)]
box: Use GtkWidget's widget list in get_size
Timm Bäder [Tue, 16 Jan 2018 14:12:24 +0000 (15:12 +0100)]
listbox: Don't assume that row child == focus widget
With widgets supporting child widgets and custom GtkListBoxRow
subclasses, this might not be true.
Timm Bäder [Tue, 16 Jan 2018 13:50:50 +0000 (14:50 +0100)]
widget: Remove reparent special case
Since gtk_widget_reparent doesn't exist anymore, we can also remove this
special case.
Timm Bäder [Mon, 15 Jan 2018 21:07:29 +0000 (22:07 +0100)]
container: Remove some unused includes
Timm Bäder [Mon, 15 Jan 2018 20:58:36 +0000 (21:58 +0100)]
viewport: Remove some unused includes
Matthias Clasen [Wed, 17 Jan 2018 19:43:50 +0000 (14:43 -0500)]
gl area: Avoid trivialities
If we have zero pixels, no need to snapshot anything,
and produce GL errors while doing so.
Matthias Clasen [Wed, 17 Jan 2018 19:39:46 +0000 (14:39 -0500)]
gtk-demo: Add gears to the bowl
Just for fun.
Matthias Clasen [Wed, 17 Jan 2018 14:22:01 +0000 (09:22 -0500)]
Drop GtkGLArea::has-alpha
We now always behave as if has-alpha is TRUE.
Update all callers.
Matthias Clasen [Wed, 17 Jan 2018 12:25:51 +0000 (07:25 -0500)]
Convert gtkglarea to use snapshots
Just append a texture node.
Note that this is not 100% done yet. The GL area really
needs to keep a pool of textures, and only reuse them
once the GdkTexture object is gone.
Matthias Clasen [Wed, 17 Jan 2018 05:52:15 +0000 (00:52 -0500)]
gsk: Handle GL textures
These textures already have a GL texture in them,
no need to create a new one.
Matthias Clasen [Wed, 17 Jan 2018 05:32:26 +0000 (00:32 -0500)]
gdk: Add a gl texture implementation
This will be used to pass a GL textures from the application
(or rather, GtkGLArea) down to the GSK GL renderer.
Matthias Clasen [Wed, 17 Jan 2018 04:33:40 +0000 (23:33 -0500)]
Drop removed api from the docs
This should have been part of the previous commit.
Matthias Clasen [Wed, 17 Jan 2018 04:22:41 +0000 (23:22 -0500)]
gdk: Drop some unused cursor apis
The query function for cursor sizes and capabilities
are not very interesting. At least, they are not used
in GTK+, and all backends but X11 just hardcode
made-up values anyway. So, lets drop them.
Matthias Clasen [Wed, 17 Jan 2018 04:21:32 +0000 (23:21 -0500)]
inspector: Stop using gdk_display_get_default_cursor_size
If the cursor theme size setting has no value, just hardcode 32.
Also, allow ridiculously large cursors, just for fun.
Matthias Clasen [Wed, 17 Jan 2018 04:20:12 +0000 (23:20 -0500)]
tooltip: Stop using gdk_display_get_default_cursor_size
It makes more sense to use the actual cursor theme size here.
Matthias Clasen [Wed, 17 Jan 2018 04:25:12 +0000 (23:25 -0500)]
testgtk: Stop using gdk_display_get_maximal_cursor_size
This function is going away. Just make a reasonable assumption
that cursor sizes up to 128 are supported.
Chris Lamb [Fri, 25 Aug 2017 15:24:38 +0000 (16:24 +0100)]
gtk/queryimmodules.c: Make the output deterministic.
Whilst working on the Reproducible Builds effort [0], we noticed that
queryimmodules generates non-reproducible output as it iterates over the
filesystem without sorting.
Patch attached.
[0] https://reproducible-builds.org/
Signed-off-by: Chris Lamb <lamby@debian.org>
https://bugzilla.gnome.org/show_bug.cgi?id=786528
Matthias Clasen [Tue, 16 Jan 2018 23:16:21 +0000 (18:16 -0500)]
tree model sort: Fix set_sort_column
We were failing to change the sort order for the
default sort column in some cases. Fix that, and
add a testcase for this issue.
https://bugzilla.gnome.org/show_bug.cgi?id=792459
Add a testcase for the previous fix
Matthias Clasen [Tue, 16 Jan 2018 23:15:13 +0000 (18:15 -0500)]
tree model sort: Fix initial default sort func
gtk_tree_sortable_has_default_sort_func should return
FALSE initially.
Matthias Clasen [Tue, 16 Jan 2018 20:42:28 +0000 (15:42 -0500)]
Fix the icontheme test
We rely on log messages here. Since logging is per-display
now, we need to set a display on our custom icontheme object
to get the expected log messages.
Matthias Clasen [Tue, 16 Jan 2018 19:50:25 +0000 (14:50 -0500)]
mountoperation: Fix a crash
We only create the gesture when the dialog is needed,
so don't free it unconditionally.
Matthias Clasen [Tue, 16 Jan 2018 19:13:20 +0000 (14:13 -0500)]
Drop ::button-press/release event
We are no longer using these, and there are several gestures
that can be used instead. If you need to catch raw button events,
use the ::event signal.
Matthias Clasen [Tue, 16 Jan 2018 18:57:50 +0000 (13:57 -0500)]
popover: Stop using ::button-press/release-event
Just use a generic ::event handler.
Matthias Clasen [Tue, 16 Jan 2018 18:52:40 +0000 (13:52 -0500)]
menushell: Stop using ::button-press/release-event
Merge the handlers into the existing handler for ::event.
Matthias Clasen [Tue, 16 Jan 2018 18:41:29 +0000 (13:41 -0500)]
menu: Remove stray references to 'button_press'
No code change, but this string was still used in
docs and comments.
Matthias Clasen [Tue, 16 Jan 2018 05:15:22 +0000 (00:15 -0500)]
places sidebar: Stop using ::button-press/release-event
We'll use a generic ::event signal instead.
Matthias Clasen [Tue, 16 Jan 2018 05:04:05 +0000 (00:04 -0500)]
gtk-demo: Stop using ::button-release-event
Matthias Clasen [Tue, 16 Jan 2018 04:57:57 +0000 (23:57 -0500)]
tests: Stop using ::button-press/release-event
The generic ::event signal works fine here.
Matthias Clasen [Tue, 16 Jan 2018 04:56:14 +0000 (23:56 -0500)]
testsuite: Stop using ::button-press-event
We can use the generic ::event signal instead.
Matthias Clasen [Tue, 16 Jan 2018 04:53:45 +0000 (23:53 -0500)]
tests: Stop using ::button-press-event
A gesture will do here.
Matthias Clasen [Tue, 16 Jan 2018 04:47:33 +0000 (23:47 -0500)]
Drop ::motion-notify-event
We no longer emit this signal. You can use various gestures
and event controllers instead. If you need to catch raw
motion events, use the generic ::event signal.
Matthias Clasen [Tue, 16 Jan 2018 04:34:13 +0000 (23:34 -0500)]
places sidebar: Stop using ::motion-notify-event
We can use the generic ::event signal here.
Matthias Clasen [Tue, 16 Jan 2018 04:26:44 +0000 (23:26 -0500)]
docs: Stop referring to specific event signals
These are going away.
Matthias Clasen [Tue, 16 Jan 2018 04:24:50 +0000 (23:24 -0500)]
gtk-demo: Stop using ::motion-notify-event in the hypertext demo
We already have a generic ::event handler, just use it for this.
Matthias Clasen [Tue, 16 Jan 2018 04:15:51 +0000 (23:15 -0500)]
tests: Stop using ::motion-notify-event
We can use the generic ::event signal here.
Matthias Clasen [Tue, 16 Jan 2018 03:52:00 +0000 (22:52 -0500)]
treeview: Stop using ::button-press-event
We can just use a gesture here.
Matthias Clasen [Tue, 16 Jan 2018 01:02:55 +0000 (20:02 -0500)]
recent chooser: Stop using ::button-press-event
We can just use a multipress gesture here.
Matthias Clasen [Mon, 15 Jan 2018 21:43:54 +0000 (16:43 -0500)]
mount operation: Stop using ::button-press-event
A multipress gesture does just fine here.
Matthias Clasen [Mon, 15 Jan 2018 02:53:22 +0000 (21:53 -0500)]
testinput: Port to a drag gesture
This replaces both button-press-event and motion-notify-event
handlers.
Matthias Clasen [Thu, 11 Jan 2018 00:02:23 +0000 (19:02 -0500)]
entry completion: Drop another ::button-press-event handler
This one will be replaced by a generic ::event handler.
Matthias Clasen [Wed, 10 Jan 2018 23:52:39 +0000 (18:52 -0500)]
docs: Stop referring to legacy event signals
These are going away.
Matthias Clasen [Wed, 10 Jan 2018 23:51:01 +0000 (18:51 -0500)]
entry completion: Stop using ::button-press-event
Just use the existing ::row-activated signal on the treeviews.
Matthias Clasen [Wed, 10 Jan 2018 23:38:00 +0000 (18:38 -0500)]
gtk-demo: Stop using ::button-press-event
Use gestures instead.
Matthias Clasen [Wed, 10 Jan 2018 23:30:13 +0000 (18:30 -0500)]
testgtk: Stop using ::button-press-event
This one example can just as well use a gesture.
Matthias Clasen [Mon, 8 Jan 2018 01:40:11 +0000 (20:40 -0500)]
places view: Stop using ::button-press-event
Instead, use a multi-press gesture in the row widget,
and emit ::popup-menu from there.
Matthias Clasen [Mon, 8 Jan 2018 00:33:27 +0000 (19:33 -0500)]
file chooser: Use a multipress gesture
This replaces the use of ::button-press-event. There's two
issues with this commit:
1) We don't have a good way to do the equivalent of
gdk_event_triggers_context_menu with gestures
2) We have to defer to and idle to avoid ordering
issues with the treeviews own gestures
Matthias Clasen [Sun, 7 Jan 2018 17:54:06 +0000 (12:54 -0500)]
Revert "file chooser: Allow activating without double-click"
This reverts commit
fb0a13b7f070a14312dafa1e4df6ba03cf33be01.
It is getting in the way of gesture conversion, and didn't
really make anybody happy anyway.
Matthias Clasen [Sun, 7 Jan 2018 16:25:55 +0000 (11:25 -0500)]
app chooser: Use a gesture
Instead of connecting to ::button-press-event, use
a multipress gesture here.
Matthias Clasen [Sun, 7 Jan 2018 15:45:07 +0000 (10:45 -0500)]
Remove a leftover icon-size property
This made the 'style classes' demo crash.
Matthias Clasen [Sat, 6 Jan 2018 23:18:38 +0000 (18:18 -0500)]
Drop ::focus-in/out-event
These signals are no longer used in GTK+.
If you need to catch focus events, use the ::event signal.
Matthias Clasen [Sat, 6 Jan 2018 23:10:11 +0000 (18:10 -0500)]
treeview: Stop using ::focus-out-event
We can just use the generic ::event signal.
Matthias Clasen [Sat, 6 Jan 2018 23:04:24 +0000 (18:04 -0500)]
file chooser entry: Stop using ::focus-out-event
Just use the generic ::event signal.
Matthias Clasen [Sat, 6 Jan 2018 22:53:20 +0000 (17:53 -0500)]
spin button: Stop using ::focus-out-event
Just use the generic ::event signal.
Matthias Clasen [Sat, 6 Jan 2018 22:52:56 +0000 (17:52 -0500)]
calendar: Stop using ::focus-out-event
Use the generic ::event signal.
Matthias Clasen [Sat, 6 Jan 2018 20:35:54 +0000 (15:35 -0500)]
color editor: stop using ::focus-out-event
Again, the has-focus property is sufficient.
Matthias Clasen [Sat, 6 Jan 2018 20:12:04 +0000 (15:12 -0500)]
text cell renderer: Stop using ::focus-out-event
The has-focus property works fine here.
Matthias Clasen [Sat, 6 Jan 2018 20:09:26 +0000 (15:09 -0500)]
spin cell renderer: Stop using ::focus-out-event
The has-focus property works fine here.
Matthias Clasen [Sat, 6 Jan 2018 20:06:12 +0000 (15:06 -0500)]
combo cell renderer: Stop using ::focus-out-event
The has-focus property works fine here.
Matthias Clasen [Sat, 6 Jan 2018 17:29:29 +0000 (12:29 -0500)]
tests: Stop using ::focus-in/out-event
The has-focus property works just as well here.
Matthias Clasen [Sat, 6 Jan 2018 17:21:31 +0000 (12:21 -0500)]
popover: Stop using ::focus-in/out-event
We can use the is-active property of the window instead.
Matthias Clasen [Sat, 6 Jan 2018 17:11:40 +0000 (12:11 -0500)]
application: Stop using ::focus-in-event
We are really interested in the active window, so use
that property directly.
Matthias Clasen [Sat, 6 Jan 2018 17:51:33 +0000 (12:51 -0500)]
window: Stop using ::focus-in/out-event
We can just use the generic ::event.
Matthias Clasen [Sat, 6 Jan 2018 17:41:02 +0000 (12:41 -0500)]
text view: Stop using ::focus-in/out-event
We can just use the generic ::event here.
Matthias Clasen [Sat, 6 Jan 2018 17:03:30 +0000 (12:03 -0500)]
entry completion: Stop using ::focus-out-event
We can just use ::event.
Matthias Clasen [Sat, 6 Jan 2018 16:49:51 +0000 (11:49 -0500)]
entry: Stop using ::focus-in/out-event
We can just use the generic ::event signal.
Matthias Clasen [Sat, 6 Jan 2018 16:48:53 +0000 (11:48 -0500)]
a11y: Stop using ::focus-in/out-event
We can just use the generic ::event signal.
Matthias Clasen [Wed, 3 Jan 2018 02:58:46 +0000 (21:58 -0500)]
Drop gtk_widget_hide_on_delete
This function is misnamed - it is only ever relevant for
windows. And with the ::hide-on-delete property , it is
no longer necessary to use the signal for this simple case.
Matthias Clasen [Tue, 2 Jan 2018 23:03:59 +0000 (18:03 -0500)]
Drop ::event-after
This signal is not used in GTK+, and we are reducing the
amount of widget signals devoted to events in favor of
event controllers.
Matthias Clasen [Tue, 2 Jan 2018 22:05:08 +0000 (17:05 -0500)]
Drop ::grab-broken-event
This signal is no longer used in GTK+. Grab broken events
can be handled with the generic ::event signal.
Matthias Clasen [Tue, 2 Jan 2018 22:00:39 +0000 (17:00 -0500)]
button: Stop using ::grab-broken-event
The event-specific signals are going away. Just use ::event here.
Matthias Clasen [Tue, 2 Jan 2018 22:00:12 +0000 (17:00 -0500)]
menushell: Stop using ::grab-broken
The event-specific signals are going away. Just use ::event here.
Matthias Clasen [Tue, 16 Jan 2018 03:54:03 +0000 (22:54 -0500)]
notebook: some cleanup
Matthias Clasen [Tue, 2 Jan 2018 21:29:38 +0000 (16:29 -0500)]
notebook: Use a motion event controller
This lets us avoid the ::motion-notify-event handler.
Matthias Clasen [Tue, 2 Jan 2018 20:45:52 +0000 (15:45 -0500)]
textview: Use a motion event controller
This lets us replace the ::motion-notify-event handler.
Matthias Clasen [Tue, 2 Jan 2018 18:37:02 +0000 (13:37 -0500)]
Drop ::enter/leave-notify-event
These signals are no longer used in GTK+ and have a (not quite
perfect yet) replacement with GtkEventControllerMotion.
If you need to catch the raw events, the generic ::event
signal still works.
Matthias Clasen [Tue, 2 Jan 2018 18:22:36 +0000 (13:22 -0500)]
menu: Use a motion event controller
This lets us replace the ::enter/leave-notify-event handlers.
Not that there is a FIXME here - we currently can't get the
crossing mode from the event controller, so we have to fall
back to gtk_get_current_event().